import request from '../request'
import { API_CONFIG } from '../config'

// API响应接口定义
interface SyncResponse {
    code: number
    data: string
    message: string
}

// 外链数据统计接口
interface BacklinkStats {
    auto_backlink_count: number
    pr_backlink_count: number
    manual_backlink_count: number
    ugc_backlink_count: number
}

interface BacklinkStatsResponse {
    code: number
    message: string
    data: BacklinkStats
    timestamp?: number
}

// Excel上传响应接口
interface ExcelUploadResponse {
    code: number
    message: string
    data: {
        recordCount: number
        message: string
    }
}

// 数据同步服务
export const dataService = {
    // 获取所有外链数据统计（统一接口）
    async getAutoBacklinks(): Promise<BacklinkStatsResponse> {
        return request.get('/data/auto_backlinks')
    },

    // 触发数据同步（统一接口）
    async syncData(): Promise<SyncResponse> {
        return request.post('/data/sync')
    },

    // 下载Excel模板
    async downloadExcelTemplate(): Promise<void> {
        // 直接使用 request.download 方法
        await request.download('/data/manual_file', 'manual_template.xlsx')
    },

    // 上传Excel文件
    async uploadExcel(file: File): Promise<ExcelUploadResponse> {
        return request.upload('/data/manual_file', file)
    },

    // 导出项目数据为Excel
    exportProjectData(projectId: number, sourceType: string): void {
        const params = new URLSearchParams({
            source_type: sourceType,
            project_id: projectId.toString()
        })

        // 构建完整的下载URL
        const downloadUrl = `${API_CONFIG.BASE_URL}/data/export_data?${params.toString()}`

        // 在新标签页中打开下载链接
        window.open(downloadUrl, '_blank')
    }
}